<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Title</title>
</head>
<body>

</body>
<script>
	// * 对象如何设置属性与方法
	// {
	// 	const obj = {
	// 		a:1,
	// 		b:2,
	// 		fn1(){
	// 			console.log(this === obj);// true
	// 		},
	// 		fn2:()=>{
	// 			console.log(this);// window
	// 		},
	// 		fn3:function(){
	// 			console.log(this === obj);
	// 		}
	// 	}
	// 	obj.c = 100;
	// 	obj.fn1();
	// 	obj.fn2();
	// 	obj.fn3();
	//
	// }
	// * 对象如何获取属性与调用方法
	//     * .属性名：编码简单，但有时不能用
	// {
	// 	let a ="lisi";
	// 	const obj = {
	// 		userName:"zhangsan",
	// 		"&^adsf":"lisi",
	// 		[a]:"wangwu"
	// 	}
	// 	console.log(obj.userName);// zhangsan
	// 	console.log(obj["&^adsf"]);
	// 	console.log(obj[a]);
	// 	console.log(obj["userName"]);
	//
	// }
	//     * ["属性名"]：编码麻烦，但通用。
	// * 对象如何进行遍历
	// {
	// 	const obj = {
	// 		a:1,
	// 		b:2,
	// 		c:3
	// 	}
	// 	// 1
	// 	// for(let key in obj){
	// 	// 	console.log(key,obj[key]);
	// 	// }
	//
	// 	// 2
	// 	Object.keys(obj).forEach(function(key){
	// 		console.log(key,obj[key]);
	// 	})
	// }

	
	
	// * 对象如何删除属性
	// {
	// 	const obj = {
	// 		a:1,
	// 		b:2,
	// 		info:{
	// 			c:3
	// 		}
	// 	}
	// 	delete obj.a;
	// 	delete obj.b;
	// 	delete obj.info.c;
	// 	console.log(obj);
	// }
	
	
	var a = {};
	var b = {b:1};
	var c = {c:2};
	a[b] = 4;// a[{b:1}] = 4;====>a["[Object,Object]"]=4;
	a[c] = 5;// a[{c:2}] = 5;====>a["[Object,Object]"]=5;
	console.log(a,a[b]);// a[{b:1}]====>a["[Object,Object]"]
</script>
</html>